package com.sgcc.operate.domain;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.google.common.collect.Lists;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.sgcc.common.core.annotation.Excel;
import com.sgcc.common.core.web.domain.BaseEntity;

/**
 * 活动信息对象 o_acti_info
 * 
 * @author sgcc
 * @date 2021-03-23
 */
public class OActiInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 活动ID */
    @Excel(name = "活动ID")
    private String id;

    /** 指标内容ID */
    @Excel(name = "指标内容ID")
    private String indicontentid;

    /** 运营方案ID */
    @Excel(name = "运营方案ID")
    private String schemeid;

    /** 活动名称 */
    @Excel(name = "活动名称")
    private String actiname;

    /** 预计完成指标值 */
    @Excel(name = "预计完成指标值")
    private String estindivalue;

    /** 活动类型 */
    @Excel(name = "活动类型")
    private String actitype;

    /** 活动开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "活动开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date starttime;

    /** 活动结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "活动结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endtime;

    /** 人群规则定义ID */
    @Excel(name = "人群规则定义ID")
    private String crowdid;

    /** 奖品费用合计 */
    @Excel(name = "奖品费用合计")
    private String prizecost;

    /** 其他费用合计 */
    @Excel(name = "其他费用合计")
    private String othercost;

    /** 活动总预算 */
    @Excel(name = "活动总预算")
    private String actibudget;

    /** 活动状态 */
    @Excel(name = "活动状态")
    private String actistatus;

    /** 奖品有效期类型 */
    @Excel(name = "奖品有效期类型")
    private String validtype;

    /** 奖品有效时间 */
    @Excel(name = "奖品有效时间")
    private String validtime;

    /** 核销规则 */
    @Excel(name = "核销规则")
    private String writeoffrule;

    /** 缴费满可核销 */
    @Excel(name = "缴费满可核销")
    private String canwriteoff;

    /** $column.columnComment */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "缴费满可核销", width = 30, dateFormat = "yyyy-MM-dd  HH:mm:ss")
    private Date createDate;

    /** $column.columnComment */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "缴费满可核销", width = 30, dateFormat = "yyyy-MM-dd  HH:mm:ss")
    private Date updateDate;

    /** $column.columnComment */
    @Excel(name = "缴费满可核销")
    private String delFlag;

    /** 是否需要配置H5界面 */
    @Excel(name = "是否需要配置H5界面")
    private String h5Flag;

    private String putchannel;  //投放渠道
    private String htmlbana;    //活动模板
    private List<OPrizeCost> oprizeCostList = Lists.newArrayList();		// 子表列表

    private OActiRule oActiRule;  //活动规则
    private String oindiformid;		// 指标id
    private String indiname;		//指标名称
    private String indiid;		//指标id
    private String peopleapply;  //适用人群名称
    private String peoplenum;         //适用人群数
    private String ruleid;       //配置活动对应的id
    private String orgname;  	//供电单位名称

    private String schemename;		// 运营方案名称
    private String modifyorg;		// 单位编码

    private Date beginCreateDate;		// 开始 创建时间
    private Date endCreateDate;		// 结束 创建时间

    private String tempId;
    private String mainPicPath;
    private String templateName;

    private String actiTypeName;
    private String actiStatusName;

    private String rulename;

    public String getPutchannel() {
        return putchannel;
    }

    public void setPutchannel(String putchannel) {
        this.putchannel = putchannel;
    }

    public String getHtmlbana() {
        return htmlbana;
    }

    public void setHtmlbana(String htmlbana) {
        this.htmlbana = htmlbana;
    }

    public List<OPrizeCost> getOprizeCostList() {
        return oprizeCostList;
    }

    public void setOprizeCostList(List<OPrizeCost> oprizeCostList) {
        this.oprizeCostList = oprizeCostList;
    }

    public OActiRule getoActiRule() {
        return oActiRule;
    }

    public void setoActiRule(OActiRule oActiRule) {
        this.oActiRule = oActiRule;
    }

    public String getOindiformid() {
        return oindiformid;
    }

    public void setOindiformid(String oindiformid) {
        this.oindiformid = oindiformid;
    }

    public String getIndiname() {
        return indiname;
    }

    public void setIndiname(String indiname) {
        this.indiname = indiname;
    }

    public String getPeopleapply() {
        return peopleapply;
    }

    public void setPeopleapply(String peopleapply) {
        this.peopleapply = peopleapply;
    }

    public String getPeoplenum() {
        return peoplenum;
    }

    public void setPeoplenum(String peoplenum) {
        this.peoplenum = peoplenum;
    }

    public String getRuleid() {
        return ruleid;
    }

    public void setRuleid(String ruleid) {
        this.ruleid = ruleid;
    }

    public String getOrgname() {
        return orgname;
    }

    public void setOrgname(String orgname) {
        this.orgname = orgname;
    }

    public String getSchemename() {
        return schemename;
    }

    public void setSchemename(String schemename) {
        this.schemename = schemename;
    }

    public String getModifyorg() {
        return modifyorg;
    }

    public void setModifyorg(String modifyorg) {
        this.modifyorg = modifyorg;
    }

    public Date getBeginCreateDate() {
        return beginCreateDate;
    }

    public void setBeginCreateDate(Date beginCreateDate) {
        this.beginCreateDate = beginCreateDate;
    }

    public Date getEndCreateDate() {
        return endCreateDate;
    }

    public void setEndCreateDate(Date endCreateDate) {
        this.endCreateDate = endCreateDate;
    }

    public String getTempId() {
        return tempId;
    }

    public void setTempId(String tempId) {
        this.tempId = tempId;
    }

    public String getMainPicPath() {
        return mainPicPath;
    }

    public void setMainPicPath(String mainPicPath) {
        this.mainPicPath = mainPicPath;
    }

    public String getTemplateName() {
        return templateName;
    }

    public void setTemplateName(String templateName) {
        this.templateName = templateName;
    }

    public String getActiTypeName() {
        return actiTypeName;
    }

    public void setActiTypeName(String actiTypeName) {
        this.actiTypeName = actiTypeName;
    }

    public String getActiStatusName() {
        return actiStatusName;
    }

    public void setActiStatusName(String actiStatusName) {
        this.actiStatusName = actiStatusName;
    }

    public List<OPutChannel> getChannels() {
        return channels;
    }

    public void setChannels(List<OPutChannel> channels) {
        this.channels = channels;
    }

    public String getChannelsStr() {
        return channelsStr;
    }

    public void setChannelsStr(String channelsStr) {
        this.channelsStr = channelsStr;
    }

    /**投放渠道*/
    private List<OPutChannel> channels = new ArrayList<OPutChannel>();

    private String channelsStr;


    public void setId(String id) 
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }
    public void setIndicontentid(String indicontentid) 
    {
        this.indicontentid = indicontentid;
    }

    public String getIndicontentid() 
    {
        return indicontentid;
    }
    public void setSchemeid(String schemeid) 
    {
        this.schemeid = schemeid;
    }

    public String getSchemeid() 
    {
        return schemeid;
    }
    public void setActiname(String actiname) 
    {
        this.actiname = actiname;
    }

    public String getActiname() 
    {
        return actiname;
    }
    public void setEstindivalue(String estindivalue) 
    {
        this.estindivalue = estindivalue;
    }

    public String getEstindivalue() 
    {
        return estindivalue;
    }
    public void setActitype(String actitype) 
    {
        this.actitype = actitype;
    }

    public String getActitype() 
    {
        return actitype;
    }
    public void setStarttime(Date starttime) 
    {
        this.starttime = starttime;
    }

    public Date getStarttime() 
    {
        return starttime;
    }
    public void setEndtime(Date endtime) 
    {
        this.endtime = endtime;
    }

    public Date getEndtime() 
    {
        return endtime;
    }
    public void setCrowdid(String crowdid) 
    {
        this.crowdid = crowdid;
    }

    public String getCrowdid() 
    {
        return crowdid;
    }
    public void setPrizecost(String prizecost) 
    {
        this.prizecost = prizecost;
    }

    public String getPrizecost() 
    {
        return prizecost;
    }
    public void setOthercost(String othercost) 
    {
        this.othercost = othercost;
    }

    public String getOthercost() 
    {
        return othercost;
    }
    public void setActibudget(String actibudget) 
    {
        this.actibudget = actibudget;
    }

    public String getActibudget() 
    {
        return actibudget;
    }
    public void setActistatus(String actistatus) 
    {
        this.actistatus = actistatus;
    }

    public String getActistatus() 
    {
        return actistatus;
    }
    public void setValidtype(String validtype) 
    {
        this.validtype = validtype;
    }

    public String getValidtype() 
    {
        return validtype;
    }
    public void setValidtime(String validtime) 
    {
        this.validtime = validtime;
    }

    public String getValidtime() 
    {
        return validtime;
    }
    public void setWriteoffrule(String writeoffrule) 
    {
        this.writeoffrule = writeoffrule;
    }

    public String getWriteoffrule() 
    {
        return writeoffrule;
    }
    public void setCanwriteoff(String canwriteoff) 
    {
        this.canwriteoff = canwriteoff;
    }

    public String getCanwriteoff() 
    {
        return canwriteoff;
    }
    public void setCreateDate(Date createDate) 
    {
        this.createDate = createDate;
    }

    public Date getCreateDate() 
    {
        return createDate;
    }
    public void setUpdateDate(Date updateDate) 
    {
        this.updateDate = updateDate;
    }

    public Date getUpdateDate() 
    {
        return updateDate;
    }
    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }
    public void setH5Flag(String h5Flag) 
    {
        this.h5Flag = h5Flag;
    }

    public String getH5Flag() 
    {
        return h5Flag;
    }

    public String getIndiid() {
        return indiid;
    }

    public void setIndiid(String indiid) {
        this.indiid = indiid;
    }

    public String getRulename() {
        return rulename;
    }

    public void setRulename(String rulename) {
        this.rulename = rulename;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("indicontentid", getIndicontentid())
            .append("schemeid", getSchemeid())
            .append("actiname", getActiname())
            .append("estindivalue", getEstindivalue())
            .append("actitype", getActitype())
            .append("starttime", getStarttime())
            .append("endtime", getEndtime())
            .append("crowdid", getCrowdid())
            .append("prizecost", getPrizecost())
            .append("othercost", getOthercost())
            .append("actibudget", getActibudget())
            .append("actistatus", getActistatus())
            .append("validtype", getValidtype())
            .append("validtime", getValidtime())
            .append("writeoffrule", getWriteoffrule())
            .append("canwriteoff", getCanwriteoff())
            .append("createBy", getCreateBy())
            .append("createDate", getCreateDate())
            .append("updateBy", getUpdateBy())
            .append("updateDate", getUpdateDate())
            .append("remark", getRemark())
            .append("delFlag", getDelFlag())
            .append("h5Flag", getH5Flag())
            .toString();
    }
}
